package 链表题.反转单向链表;

import 链表题.ListNode;

public class Test1 {
    /**
     * 方法一:
     *  构造一个新链表, 从旧链表依次拿到每个节点, 创建新节点添加至新链表头部, 完成后新链表即时倒序的
     */
    public static void main(String[] args) {
        ListNode o5 = new ListNode(5,null);
        ListNode o4 = new ListNode(4,o5);
        ListNode o3 = new ListNode(3,o4);
        ListNode o2 = new ListNode(2,o3);
        ListNode o1 = new ListNode(1,o2);
        System.out.println(o1);
        ListNode n1 = reverselList(o1);
        System.out.println(n1);
    }

    private static ListNode reverselList(ListNode o1) {
        ListNode n1 = null;
        ListNode p = o1;
        while (p != null) {
            n1 = new ListNode(p.val, n1);
            p = p.next;
        }
        return n1;
    }
}
